# install.packages("")
library(tidyverse)## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✔ ggplot2 3.3.5 ✔ purrr 0.3.4
## ✔ tibble 3.1.7 ✔ dplyr 1.0.8
## ✔ tidyr 1.2.0 ✔ stringr 1.4.0
## ✔ readr 1.4.0 ✔ forcats 0.5.1
## Warning: package 'tidyr' was built under R version 4.0.5
## Warning: package 'dplyr' was built under R version 4.0.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(patchwork) # for muoltiple plotshttps://www12.statcan.gc.ca/census-recensement/2021/as-sa/fogs-spg/page.cfm?topic=2&lang=E&dguid=2021A00055917034#fogsTitle5
Download Options (upper right arrow): csv https://www12.statcan.gc.ca/census-recensement/2021/as-sa/fogs-spg/alternative.cfm?topic=2&lang=E&dguid=2021A00055917034&objectId=5
https://www12.statcan.gc.ca/census-recensement/2021/as-sa/fogs-spg/page.cfm?topic=2&lang=E&dguid=2021A000259#fogsTitle5 ## Download data for BC https://www12.statcan.gc.ca/census-recensement/2021/as-sa/fogs-spg/page.cfm?topic=2&lang=E&dguid=2021A000259#fogsTitle6
skip first 2 rows
Victoria_pop_age_gender_2021 <- read.csv("Pop-Age-Gender-Victoria-2021-Census-2021A00055917034_5.csv",
skip = 2, header = T)
BC_pop_2021 <- read.csv("BC-Pop-2021A000259_6.csv",
skip = 2, header = T)
Canada_senior_pop_2021 <- read.csv("Canada-Senior-pop-percentage-2021A000259_5.csv",
skip = 2, header = T)skip last 12 rows
Victoria_pop_age_gender_2021 <- head(Victoria_pop_age_gender_2021, -12)
BC_pop_2021 <- head(BC_pop_2021, -12)
Canada_senior_pop_2021 <- head(Canada_senior_pop_2021, -12)class(Victoria_pop_age_gender_2021)## [1] "data.frame"
str(Victoria_pop_age_gender_2021)## 'data.frame': 42 obs. of 3 variables:
## $ Age.groups : chr "0 to 4" "0 to 4" "5 to 9" "5 to 9" ...
## $ Gender : chr "Women+" "Men+" "Women+" "Men+" ...
## $ Population.counts: int 1400 1510 1440 1395 1365 1340 1340 1375 3475 2565 ...
colnames(Victoria_pop_age_gender_2021)## [1] "Age.groups" "Gender" "Population.counts"
print(Victoria_pop_age_gender_2021)## Age.groups Gender Population.counts
## 1 0 to 4 Women+ 1400
## 2 0 to 4 Men+ 1510
## 3 5 to 9 Women+ 1440
## 4 5 to 9 Men+ 1395
## 5 10 to 14 Women+ 1365
## 6 10 to 14 Men+ 1340
## 7 15 to 19 Women+ 1340
## 8 15 to 19 Men+ 1375
## 9 20 to 24 Women+ 3475
## 10 20 to 24 Men+ 2565
## 11 25 to 29 Women+ 4525
## 12 25 to 29 Men+ 4235
## 13 30 to 34 Women+ 4490
## 14 30 to 34 Men+ 4545
## 15 35 to 39 Women+ 3635
## 16 35 to 39 Men+ 3820
## 17 40 to 44 Women+ 2945
## 18 40 to 44 Men+ 3035
## 19 45 to 49 Women+ 2570
## 20 45 to 49 Men+ 2635
## 21 50 to 54 Women+ 2705
## 22 50 to 54 Men+ 2640
## 23 55 to 59 Women+ 2895
## 24 55 to 59 Men+ 2665
## 25 60 to 64 Women+ 3205
## 26 60 to 64 Men+ 2755
## 27 65 to 69 Women+ 3345
## 28 65 to 69 Men+ 2675
## 29 70 to 74 Women+ 3230
## 30 70 to 74 Men+ 2675
## 31 75 to 79 Women+ 2015
## 32 75 to 79 Men+ 1685
## 33 80 to 84 Women+ 1430
## 34 80 to 84 Men+ 985
## 35 85 to 89 Women+ 1065
## 36 85 to 89 Men+ 605
## 37 90 to 94 Women+ 890
## 38 90 to 94 Men+ 350
## 39 95 to 99 Women+ 275
## 40 95 to 99 Men+ 80
## 41 100+ Women+ 40
## 42 100+ Men+ 10
glimpse(Victoria_pop_age_gender_2021)## Rows: 42
## Columns: 3
## $ Age.groups <chr> "0 to 4", "0 to 4", "5 to 9", "5 to 9", "10 to 14", …
## $ Gender <chr> "Women+", "Men+", "Women+", "Men+", "Women+", "Men+"…
## $ Population.counts <int> 1400, 1510, 1440, 1395, 1365, 1340, 1340, 1375, 3475…
class(BC_pop_2021)## [1] "data.frame"
str(BC_pop_2021)## 'data.frame': 42 obs. of 3 variables:
## $ Age.groups : chr "0 to 4" "0 to 4" "5 to 9" "5 to 9" ...
## $ Gender : chr "Women+" "Men+" "Women+" "Men+" ...
## $ Population.counts: int 105805 111015 118485 125810 123365 132425 122445 131245 143145 151505 ...
colnames(BC_pop_2021)## [1] "Age.groups" "Gender" "Population.counts"
print(BC_pop_2021)## Age.groups Gender Population.counts
## 1 0 to 4 Women+ 105805
## 2 0 to 4 Men+ 111015
## 3 5 to 9 Women+ 118485
## 4 5 to 9 Men+ 125810
## 5 10 to 14 Women+ 123365
## 6 10 to 14 Men+ 132425
## 7 15 to 19 Women+ 122445
## 8 15 to 19 Men+ 131245
## 9 20 to 24 Women+ 143145
## 10 20 to 24 Men+ 151505
## 11 25 to 29 Women+ 166585
## 12 25 to 29 Men+ 170500
## 13 30 to 34 Women+ 179660
## 14 30 to 34 Men+ 178925
## 15 35 to 39 Women+ 178175
## 16 35 to 39 Men+ 175175
## 17 40 to 44 Women+ 163260
## 18 40 to 44 Men+ 156480
## 19 45 to 49 Women+ 160515
## 20 45 to 49 Men+ 149520
## 21 50 to 54 Women+ 170460
## 22 50 to 54 Men+ 158540
## 23 55 to 59 Women+ 183825
## 24 55 to 59 Men+ 172520
## 25 60 to 64 Women+ 184920
## 26 60 to 64 Men+ 170210
## 27 65 to 69 Women+ 166700
## 28 65 to 69 Men+ 152705
## 29 70 to 74 Women+ 141995
## 30 70 to 74 Men+ 130370
## 31 75 to 79 Women+ 95015
## 32 75 to 79 Men+ 86060
## 33 80 to 84 Women+ 65780
## 34 80 to 84 Men+ 55285
## 35 85 to 89 Women+ 42005
## 36 85 to 89 Men+ 32315
## 37 90 to 94 Women+ 23120
## 38 90 to 94 Men+ 13720
## 39 95 to 99 Women+ 6925
## 40 95 to 99 Men+ 2865
## 41 100+ Women+ 1185
## 42 100+ Men+ 330
glimpse(BC_pop_2021)## Rows: 42
## Columns: 3
## $ Age.groups <chr> "0 to 4", "0 to 4", "5 to 9", "5 to 9", "10 to 14", …
## $ Gender <chr> "Women+", "Men+", "Women+", "Men+", "Women+", "Men+"…
## $ Population.counts <int> 105805, 111015, 118485, 125810, 123365, 132425, 1224…
Victoria_pop_age_gender_2021[Victoria_pop_age_gender_2021 == "Women+"] <- "Women"
Victoria_pop_age_gender_2021[Victoria_pop_age_gender_2021 == "Men+"] <- "Men"
BC_pop_2021[BC_pop_2021 == "Women+"] <- "Women"
BC_pop_2021[BC_pop_2021 == "Men+"] <- "Men"colnames(Victoria_pop_age_gender_2021) <- c("age_group", "gender", "pop")
colnames(BC_pop_2021) <- c("age_group", "gender", "pop")Victoria_pop_age_gender_2021$age_group <- factor(Victoria_pop_age_gender_2021$age_group,
levels = str_sort(unique(Victoria_pop_age_gender_2021$age_group), numeric = TRUE))
str(Victoria_pop_age_gender_2021)## 'data.frame': 42 obs. of 3 variables:
## $ age_group: Factor w/ 21 levels "0 to 4","5 to 9",..: 1 1 2 2 3 3 4 4 5 5 ...
## $ gender : chr "Women" "Men" "Women" "Men" ...
## $ pop : int 1400 1510 1440 1395 1365 1340 1340 1375 3475 2565 ...
BC_pop_2021$age_group <- factor(BC_pop_2021$age_group,
levels = str_sort(unique(BC_pop_2021$age_group), numeric = TRUE))
str(BC_pop_2021)## 'data.frame': 42 obs. of 3 variables:
## $ age_group: Factor w/ 21 levels "0 to 4","5 to 9",..: 1 1 2 2 3 3 4 4 5 5 ...
## $ gender : chr "Women" "Men" "Women" "Men" ...
## $ pop : int 105805 111015 118485 125810 123365 132425 122445 131245 143145 151505 ...
Victoria_pop_age_gender_2021_seniors <-
Victoria_pop_age_gender_2021[Victoria_pop_age_gender_2021$age_group %in%
c("55 to 59", "60 to 64", "65 to 69", "70 to 74", "75 to 79",
"80 to 84", "85 to 89", "90 to 94", "95 to 99", "100+"), ]
BC_pop_2021_seniors <-
Victoria_pop_age_gender_2021[Victoria_pop_age_gender_2021$age_group %in%
c("55 to 59", "60 to 64", "65 to 69", "70 to 74", "75 to 79",
"80 to 84", "85 to 89", "90 to 94", "95 to 99", "100+"), ]Victoria_pop_age_gender_2021_wide <- Victoria_pop_age_gender_2021 %>%
pivot_wider(names_from = gender, values_from = pop)class(Victoria_pop_age_gender_2021_wide)## [1] "tbl_df" "tbl" "data.frame"
str(Victoria_pop_age_gender_2021_wide)## tibble [21 × 3] (S3: tbl_df/tbl/data.frame)
## $ age_group: Factor w/ 21 levels "0 to 4","5 to 9",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ Women : int [1:21] 1400 1440 1365 1340 3475 4525 4490 3635 2945 2570 ...
## $ Men : int [1:21] 1510 1395 1340 1375 2565 4235 4545 3820 3035 2635 ...
colnames(Victoria_pop_age_gender_2021_wide)## [1] "age_group" "Women" "Men"
print(Victoria_pop_age_gender_2021_wide)## # A tibble: 21 × 3
## age_group Women Men
## <fct> <int> <int>
## 1 0 to 4 1400 1510
## 2 5 to 9 1440 1395
## 3 10 to 14 1365 1340
## 4 15 to 19 1340 1375
## 5 20 to 24 3475 2565
## 6 25 to 29 4525 4235
## 7 30 to 34 4490 4545
## 8 35 to 39 3635 3820
## 9 40 to 44 2945 3035
## 10 45 to 49 2570 2635
## # … with 11 more rows
glimpse(Victoria_pop_age_gender_2021_wide)## Rows: 21
## Columns: 3
## $ age_group <fct> 0 to 4, 5 to 9, 10 to 14, 15 to 19, 20 to 24, 25 to 29, 30 t…
## $ Women <int> 1400, 1440, 1365, 1340, 3475, 4525, 4490, 3635, 2945, 2570, …
## $ Men <int> 1510, 1395, 1340, 1375, 2565, 4235, 4545, 3820, 3035, 2635, …
factor, str_sort unique
Victoria_pop_age_gender_2021_wide$age_group <- factor(Victoria_pop_age_gender_2021_wide$age_group,
levels = str_sort(unique(Victoria_pop_age_gender_2021_wide$age_group), numeric = TRUE))
str(Victoria_pop_age_gender_2021_wide)## tibble [21 × 3] (S3: tbl_df/tbl/data.frame)
## $ age_group: Factor w/ 21 levels "0 to 4","5 to 9",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ Women : int [1:21] 1400 1440 1365 1340 3475 4525 4490 3635 2945 2570 ...
## $ Men : int [1:21] 1510 1395 1340 1375 2565 4235 4545 3820 3035 2635 ...
Victoria_pop_age_gender_2021_wide$index <- as.numeric(row.names(Victoria_pop_age_gender_2021_wide))
Victoria_pop_age_gender_2021_wide[order(Victoria_pop_age_gender_2021_wide$index), ]## # A tibble: 21 × 4
## age_group Women Men index
## <fct> <int> <int> <dbl>
## 1 0 to 4 1400 1510 1
## 2 5 to 9 1440 1395 2
## 3 10 to 14 1365 1340 3
## 4 15 to 19 1340 1375 4
## 5 20 to 24 3475 2565 5
## 6 25 to 29 4525 4235 6
## 7 30 to 34 4490 4545 7
## 8 35 to 39 3635 3820 8
## 9 40 to 44 2945 3035 9
## 10 45 to 49 2570 2635 10
## # … with 11 more rows
plot(Victoria_pop_age_gender_2021)PROBLEM: age grouping not correct e.g. 100+ comes after 10 to 14 >>
Sort values of age_group to ensure 100+ appears in correct position
factor, str_sort unique
# colour_palette <- c("#d8b365", "#5ab4ac") # Colour brewer color-blind safe
colour_palette <- c("#af8dc3", "#7fbf7b") # Colour brewer color-blind safe
Vic_1 <- Victoria_pop_age_gender_2021 %>%
ggplot(aes(x = age_group, y = pop, fill = gender)) +
geom_bar(stat = "identity", alpha = 0.95, width = 0.85) + # width = 1 no space between bars
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1)
) +
scale_fill_manual(values = colour_palette) +
labs(title = "Victoria, BC Population \n by Age & Gender",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021")
Vic_1 # colour_palette <- c("#d8b365", "#5ab4ac") # Colour brewer color-blind safe
colour_palette <- c("#af8dc3", "#7fbf7b") # Colour brewer color-blind safe
BC <- BC_pop_2021 %>%
ggplot(aes(x = age_group, y = pop, fill = gender)) +
geom_bar(stat = "identity", alpha = 0.95, width = 0.85) + # width = 1 no space between bars
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1)
) +
scale_fill_manual(values = colour_palette) +
labs(title = "BC Population \n by Age & Gender",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021") +
scale_y_continuous(limits = c(0, 400000), labels = scales::comma)
# to avoid scientific notation
BCneed to find the cumulative sum for each stack
https://r-graphics.org/recipe-bar-graph-labels#cb84-7
# colour_palette <- c("#d8b365", "#5ab4ac") # Colour brewer color-blind safe
# get cumulative sum
BC_pop_2021 <- BC_pop_2021 %>%
group_by(age_group) %>%
mutate(label_y = cumsum(pop))
colour_palette <- c("#af8dc3", "#7fbf7b") # Colour brewer color-blind safe
BC_lab <- BC_pop_2021 %>%
ggplot(aes(x = age_group, y = pop, fill = gender)) +
geom_col() +
geom_text(aes(y = label_y, label = pop), vjust = 1.25, size = 2) +
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1),
legend.position = "bottom"
) +
scale_fill_manual(values = colour_palette) +
labs(title = "BC Population \n by Age & Gender",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021") +
scale_y_continuous(limits = c(0, 400000), labels = scales::comma)
BC_labneed to find the cumulative sum for each stack
https://r-graphics.org/recipe-bar-graph-labels#cb84-7
# colour_palette <- c("#d8b365", "#5ab4ac") # Colour brewer color-blind safe
# get cumulative sum
Victoria_pop_age_gender_2021 <- Victoria_pop_age_gender_2021 %>%
group_by(age_group) %>%
mutate(label_y = cumsum(pop))
colour_palette <- c("#af8dc3", "#7fbf7b") # Colour brewer color-blind safe
Vic_lab <- Victoria_pop_age_gender_2021 %>%
ggplot(aes(x = age_group, y = pop, fill = gender)) +
geom_col() +
geom_text(aes(y = label_y, label = pop), vjust = 1.25, size = 3) +
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1),
legend.position = "bottom"
) +
scale_fill_manual(values = colour_palette) +
labs(title = "Victoria, BC Population \n by Age & Gender",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021")
Vic_labPROBLEM: age grouping not correct e.g. 100+ comes after 10 to 14 >>
Sort values of age_group to ensure 100+ appears in correct position
factor, str_sort unique
# colour_palette <- c("#d8b365", "#5ab4ac") # Colour brewer color-blind safe
colour_palette <- c("#af8dc3", "#7fbf7b") # Colour brewer color-blind safe
Vic_dodge <- Victoria_pop_age_gender_2021 %>%
ggplot(aes(x = age_group, y = pop, fill = gender)) +
geom_bar(stat = "identity", position = position_dodge(), alpha = 0.95, width = 0.85) +
# width = 1 no space between bars
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1)
) +
scale_fill_manual(values = colour_palette) +
labs(title = "Victoria, BC Population \n by Age & Gender",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021")
Vic_dodge# colour_palette <- c("#d8b365", "#5ab4ac") # Colour brewer color-blind safe
colour_palette <- c("#af8dc3", "#7fbf7b") # Colour brewer color-blind safe
BC_dodge <- BC_pop_2021 %>%
ggplot(aes(x = age_group, y = pop, fill = gender)) +
geom_bar(stat = "identity", position = position_dodge(), alpha = 0.95, width = 0.85) +
# width = 1 no space between bars
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1)
) +
scale_fill_manual(values = colour_palette) +
labs(title = "BC Population \n by Age & Gender",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021") +
scale_y_continuous(limits = c(0, 200000), labels = scales::comma)
BC_dodgePROBLEM: age grouping not correct e.g. 100+ comes after 10 to 14 >>
Sort values of age_group to ensure 100+ appears in correct position
factor, str_sort unique
# colour_palette <- c("#d8b365", "#5ab4ac") # Colour brewer color-blind safe
colour_palette <- c("#af8dc3", "#7fbf7b") # Colour brewer color-blind safe
Vic_seniors <- Victoria_pop_age_gender_2021_seniors %>%
ggplot(aes(x = age_group, y = pop, fill = gender)) +
geom_bar(stat = "identity", position = position_dodge(), alpha = 0.95, width = 0.85) +
# wideth = 1 no space between bars
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1)
) +
scale_fill_manual(values = colour_palette) +
labs(title = "Victoria, BC Seniors Population \n by Age & Gender",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021")
Vic_seniors# colour_palette <- c("#d8b365", "#5ab4ac") # Colour brewer color-blind safe
colour_palette <- c("#af8dc3", "#7fbf7b") # Colour brewer color-blind safe
Vic_seniors_lab <- Victoria_pop_age_gender_2021_seniors %>%
ggplot(aes(x = age_group, y = pop, fill = gender)) +
geom_bar(stat = "identity", position = "dodge", alpha = 0.95, width = 0.85) +
# wideth = 1 no space between bars
geom_text(aes(label = pop), size = 3, position = position_dodge(width = 0.9), vjust = -0.25) +
# vjust negative shows above bar
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1)
) +
scale_fill_manual(values = colour_palette) +
labs(title = "Victoria, BC Seniors Population \n by Age & Gender",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021")
Vic_seniors_lab# colour_palette <- c("#d8b365", "#5ab4ac") # Colour brewer color-blind safe
colour_palette <- c("#af8dc3", "#7fbf7b") # Colour brewer color-blind safe
Vic_seniors_lab_leg_bot <- Victoria_pop_age_gender_2021_seniors %>%
ggplot(aes(x = age_group, y = pop, fill = gender)) +
geom_bar(stat = "identity", position = "dodge", alpha = 0.95, width = 0.85) +
# wideth = 1 no space between bars
geom_text(aes(label = pop), size = 3, position = position_dodge(width = 0.9), vjust = -0.25) +
# vjust negative shows above bar
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1),
legend.position = "bottom"
) +
scale_fill_manual(values = colour_palette) +
labs(title = "Victoria, BC Seniors Population \n by Age & Gender",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021")
Vic_seniors_lab_leg_botPROBLEM: age grouping not correct e.g. 100+ comes after 10 to 14
Vic_women <- Victoria_pop_age_gender_2021_wide %>%
ggplot(aes(x = age_group, y = Women)) +
geom_bar(stat = "identity", position = position_dodge(),
alpha = 0.75, width = 0.75, fill = "#d8b365") + # wideth = 1 no space between bars
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1),
) +
labs(title = "Victoria, BC Women Population by Age",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021")
Vic_womenPROBLEM: age grouping not correct e.g. 100+ comes after 10 to 14
Vic_men <- Victoria_pop_age_gender_2021_wide %>%
ggplot(aes(x = age_group, y = Men)) +
geom_bar(stat = "identity", position = position_dodge(),
alpha = 0.75, width = 0.75, fill = "#d8b365") + # wideth = 1 no space between bars
theme_light() +
theme(
plot.title = element_text(size = rel(2), face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = rel(.92), hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1),
) +
labs(title = "Victoria, BC Men's Population by Age",
subtitle = "(2021 Canada Census)",
x = "Age Group",
y = "Population",
caption = "Data: https://www12.statcan.gc.ca/census-recensement/2021")
Vic_menBC + BC_dodgeBC_labVic_lab + Vic_1Vic_dodge + BC_dodgeVic_men + Vic_womenVic_seniors + Vic_seniors_labVic_seniors_lab /
Vic_seniors_lab_leg_bot# to document specific packages used to run script
sessionInfo()## R version 4.0.2 (2020-06-22)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS Mojave 10.14.6
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRblas.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] patchwork_1.1.1 forcats_0.5.1 stringr_1.4.0 dplyr_1.0.8
## [5] purrr_0.3.4 readr_1.4.0 tidyr_1.2.0 tibble_3.1.7
## [9] ggplot2_3.3.5 tidyverse_1.3.1
##
## loaded via a namespace (and not attached):
## [1] tidyselect_1.1.2 xfun_0.30 bslib_0.3.1 haven_2.5.0
## [5] colorspace_2.0-1 vctrs_0.3.8 generics_0.1.0 htmltools_0.5.2
## [9] yaml_2.2.1 utf8_1.2.1 rlang_1.0.2 jquerylib_0.1.4
## [13] pillar_1.7.0 withr_2.4.2 glue_1.6.2 DBI_1.1.1
## [17] dbplyr_2.1.1 modelr_0.1.8 readxl_1.3.1 lifecycle_1.0.1
## [21] munsell_0.5.0 gtable_0.3.0 cellranger_1.1.0 rvest_1.0.0
## [25] evaluate_0.15 labeling_0.4.2 knitr_1.39 fastmap_1.1.0
## [29] fansi_0.5.0 highr_0.9 broom_0.8.0 Rcpp_1.0.7
## [33] backports_1.1.10 scales_1.2.0 jsonlite_1.7.2 farver_2.1.0
## [37] fs_1.5.2 hms_1.0.0 digest_0.6.27 stringi_1.6.2
## [41] grid_4.0.2 cli_3.3.0 tools_4.0.2 magrittr_2.0.3
## [45] sass_0.4.0.9000 crayon_1.4.1 pkgconfig_2.0.3 ellipsis_0.3.2
## [49] xml2_1.3.2 reprex_2.0.0 lubridate_1.7.10 assertthat_0.2.1
## [53] rmarkdown_2.15 httr_1.4.2 rstudioapi_0.13 R6_2.5.0
## [57] compiler_4.0.2